package cn.source.zk.mapper;

import org.apache.ibatis.jdbc.SQL;

public class SqlProvider {

    public String countByTimeRange(String timeRange) {
        return new SQL() {{
            SELECT("COUNT(*) AS count");
            FROM("zk_substation_info");
            WHERE("create_time IS NOT NULL");

            // 根据 timeRange 动态添加时间条件
            if ("365".equals(timeRange)) {
                WHERE("create_time >= DATE_SUB(NOW(), INTERVAL 365 DAY)");
            } else if ("90".equals(timeRange)) {
                WHERE("create_time >= DATE_SUB(NOW(), INTERVAL 90 DAY)");
            } else if ("30".equals(timeRange)) {
                WHERE("create_time >= DATE_SUB(NOW(), INTERVAL 30 DAY)");
            } else if ("24".equals(timeRange)) {
                WHERE("create_time >= DATE_SUB(NOW(), INTERVAL 24 HOUR)");
            } else {
                // 默认或非法值：返回 0（可选）
                WHERE("1 = 0");
            }
        }}.toString();
    }


    public String countByDeviceTimeRange(String timeRange) {
        return new SQL() {{
            SELECT("COUNT(*) AS count");
            FROM("zk_substation_info");
            WHERE("create_time IS NOT NULL");

            // 根据 timeRange 动态添加时间条件
            if ("365".equals(timeRange)) {
                WHERE("create_time >= DATE_SUB(NOW(), INTERVAL 365 DAY)");
            } else if ("90".equals(timeRange)) {
                WHERE("create_time >= DATE_SUB(NOW(), INTERVAL 90 DAY)");
            } else if ("30".equals(timeRange)) {
                WHERE("create_time >= DATE_SUB(NOW(), INTERVAL 30 DAY)");
            } else if ("24".equals(timeRange)) {
                WHERE("create_time >= DATE_SUB(NOW(), INTERVAL 24 HOUR)");
            } else {
                // 默认或非法值：返回 0（可选）
                WHERE("1 = 0");
            }
        }}.toString();
    }
}
